package com.prp.gwt.client.user.article;

import com.google.gwt.user.client.rpc.AsyncCallback;
import com.prp.gwt.client.vo.CommentList;
import com.prp.gwt.client.vo.Entity;
import com.prp.gwt.client.vo.EntityList;
import com.prp.gwt.client.vo.SubjectCategoryList;
import com.prp.gwt.client.vo.SubjectChildCategoryList;
import com.prp.gwt.client.vo.SubjectRecommend;
import com.prp.gwt.client.vo.SubjectRecommendList;

public interface ArticleServiceAsync {
	public void search(String keyword, AsyncCallback<EntityList> callback);
	public void getSubjectChildCategoryList(int categoryId, AsyncCallback<SubjectChildCategoryList> callback);
	public void getSubjectCategoryList(AsyncCallback<SubjectCategoryList> callback);
	public void createEntity(int childCategoryId, String entityName, AsyncCallback<Entity> callback);
	public void getSubjectRecommendList(int entityId, AsyncCallback<SubjectRecommendList> callback);
	public void getSubjectRecommend(int id, AsyncCallback<SubjectRecommend> callback);
	public void getEntity(int entityId, AsyncCallback<Entity> callback);
	public void getCommentList(int subjectId, AsyncCallback<CommentList> callback);
	public void addComment(int subjectId, String content, int score, AsyncCallback<Void> callback);
	public void getEntityList(int childCategoryId, AsyncCallback<EntityList> callback);
	public void createRecommend(int entityId, String title, String content, AsyncCallback<Integer> callback);
	public void getTopRecommend(AsyncCallback<SubjectRecommendList> callback);
	public void getTopEntity(AsyncCallback<EntityList> callback);
	public void getRecentEntity(AsyncCallback<EntityList> callback);
	public void addOneClick(int subjectId, AsyncCallback<Void> callback);
	public void deleteSubjectRecommendation(int subjectId, AsyncCallback<Void> callback);
}
